package com.tencent.XianCheng;
/**
 * 课程目标：
 * 线程模型、线程的生命周期
 * 
 * （线程模型）
 * 1、什么是程序：安装在磁盘上的指令的集合，它是静态的概念。
 * 2、什么是进程：它是运行中的程序，是动态的概念，每个进程都有独立的资源空间。
 * 3、什么是线程：线程，又称为轻量级进程，是程序执行流的最小单元，是程序中一个单一的
 * 顺序控制流程。线程是进程中的一个实体，是被系统独立调度和分派的基本单元。
 * （线程才是真正干活的人，进程只是分配的资源空间）
 * 4、什么是多线程：多线程则指的是在单个程序中可以同时运行多个不同的线程执行不同的任务。
 * 5、多线程的特点：
 * （1）一个进程可以包含一个或多个线程。
 * （2）一个程序实现多个代码同时交替运行就需要产生多个线程。
 * （3）线程本身不拥有系统资源，与同属一个进程的其它线程共享所在进程所拥有的资源。
 * （4）同一进程中的多个线程之间可以并发执行，CPU会随机抽出时间，让我们的程序一会做
 * 这件事情，一会做另外一件事情。
 * 6、多线程的目的：
 * 就是最大限度的利用CPU资源，当某一线程的处理不需要占用CPU而只和i/o等资源打交道时，让
 * 需要占用CPU资源的其它线程有机会获得CPU资源，从根本上讲，这就是多线程的最终目的。
 * 7、Java运行系统在很多方面依赖于线程，所有的类库设计都考虑到多线程。Java是纯面向对象
 * 语言，Java的线程模型也是面向对象的。
 * 8、通过继承 Thread 类创建线程：
 * （1）普通 java 类如继承自thread类，就成为一个线程类，并可通过该类的start方法来
 * 启动线程，执行线程代码。
 * （2）thread类的子类可直接实例化，但在子类中必须覆盖run方法才能真正运行线程代码。
 * 9、通过实现Runnable接口创建线程：
 * （1）实现Runnable接口的类必须借助thread类才能创建线程，通过Runnable接口创建线程
 * 分为两步：（1）创建实现Runnable接口的类的实例。（2）创建一个thread类对象，将第一步
 * 实例化得到的Runnable对象作为参数转入thread类的构造方法。
 * （2）通过thread类的start方法来启动线程。
 * 
 * (线程的生命周期)
 * 1、线程状态：与人有生老病死一样，线程也同样要经历新建、就绪、运行、阻塞和死亡五中不同的
 * 状态，这五种状态都可以通过 thread 类中的方法进行控制。
 * 2、创建并运行线程：
 * （1）新建状态（New Thread）：在java语言中使用new操作符创建一个线程后，该线程仅仅是一个空
 * 对象，它具备了线程的一些特征，但此时系统没有为其分配资源，这时的线程处于创建状态。
 * （线程处于创建状态时，可通过thread类的方法来设置线程各种属性，如线程的优先级（setPriority）、
 * 线程名（setName）和线程的类型（setDaemon）等）
 * 
 * （2）就绪状态（runnable）
 *    使用start()方法启动一个线程后，系统为该线程分配了除CPU外的所需资源，使该线程处于就绪状态。
 * 此外，如果某个线程执行了yield() 方法，那么该线程会被暂时剥夺CPU 资源，重新进入就绪状态。
 *    
 *  (3)运行状态（running）
 *     java运行系统通过调度选中一个处于就绪状态的线程，使其占有CPU并转为运行状态。此时，系统真正执行
 * 线程的run()方法。
 *   （可以通过thread类的isAlive方法来判断线程是否处于就绪状态或运行状态：当线程处于就绪状态或运行状态
 *   时，isAlive返回true，当isAlive返回false时，可能线程处于阻塞状态，也可能处于停止状态）
 */
public class test {

	public static void main(String[] args) {
	
	}

}
